package com.difsonapps.android.marker.fragments;

import com.difsonapps.android.marker.R;
import com.difsonapps.android.marker.R.id;
import com.difsonapps.android.marker.R.layout;
import com.difsonapps.android.marker.beans.User;

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

/**
 * A simple {@link android.support.v4.app.Fragment} subclass. Activities that
 * contain this fragment must implement the
 * {@link ProfileInfosFragment.OnFragmentInteractionListener} interface to
 * handle interaction events. Use the {@link ProfileInfosFragment#newInstance}
 * factory method to create an instance of this fragment.
 * 
 */
public class ProfileInfosFragment extends Fragment {
	// TODO: Rename parameter arguments, choose names that match
	// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
	public static final String ARG_PARAM_USER = "user";
	private TextView firstnameTextView;
	private TextView lastnameTextView;
	private TextView middlenameTextView;

	// TODO: Rename and change types of parameters
	private User user;

	//private OnFragmentInteractionListener mListener;

	/**
	 * Use this factory method to create a new instance of this fragment using
	 * the provided parameters.
	 * 
	 * @param param1
	 *            Parameter 1.
	 * @param param2
	 *            Parameter 2.
	 * @return A new instance of fragment ProfileInfosFragment.
	 */
	// TODO: Rename and change types and number of parameters
	public static ProfileInfosFragment newInstance(User user) {
		ProfileInfosFragment fragment = new ProfileInfosFragment();
		Bundle args = new Bundle();
		args.putParcelable(ARG_PARAM_USER, user);
		fragment.setArguments(args);
		return fragment;
	}

	public ProfileInfosFragment() {
		// Required empty public constructor
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		if (getArguments() != null) {
			user = getArguments().getParcelable(ARG_PARAM_USER);
		}
	}

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// Inflate the layout for this fragment
		View rootView = inflater.inflate(R.layout.fragment_profile_infos, container,
				false);
		firstnameTextView = (TextView)rootView.findViewById(R.id.profile_fistname);
		lastnameTextView = (TextView)rootView.findViewById(R.id.profile_lastname);
		middlenameTextView = (TextView)rootView.findViewById(R.id.profile_middlename);
		//showUser(null);
		showUser(user);
		
		
		return rootView;
	}
	
	private void showUser(User user){
		if(user==null){
			firstnameTextView.setText("");
			lastnameTextView.setText("");
			middlenameTextView.setText("");
		}else{
			firstnameTextView.setText(user.getFirstname());
			lastnameTextView.setText(user.getLastname());
			middlenameTextView.setText(user.getMiddlename());
		}
	}

	// TODO: Rename method, update argument and hook method into UI event
	public void onButtonPressed(Uri uri) {
		/*if (mListener != null) {
			mListener.onFragmentInteraction(uri);
		}*/
	}

	/*@Override
	public void onAttach(Activity activity) {
		super.onAttach(activity);
		try {
			mListener = (OnFragmentInteractionListener) activity;
		} catch (ClassCastException e) {
			throw new ClassCastException(activity.toString()
					+ " must implement OnFragmentInteractionListener");
		}
	}

	@Override
	public void onDetach() {
		super.onDetach();
		mListener = null;
	}*/

	/**
	 * This interface must be implemented by activities that contain this
	 * fragment to allow an interaction in this fragment to be communicated to
	 * the activity and potentially other fragments contained in that activity.
	 * <p>
	 * See the Android Training lesson <a href=
	 * "http://developer.android.com/training/basics/fragments/communicating.html"
	 * >Communicating with Other Fragments</a> for more information.
	 */
	/*public interface OnFragmentInteractionListener {
		// TODO: Update argument type and name
		public void onFragmentInteraction(Uri uri);
	}*/

}
